草庐IT

Java ASN.1 编译器

全部标签

c++ - gcc 4.6 编译器的奇怪行为

这段代码:templateclassInt_Core{static_assert(Check_Range::check(Min,std::numeric_limits::min()),"INCORRECTMinrange.");static_assert(Check_Range::check(Max,std::numeric_limits::max()),"INCORRECTMaxrange.");}我得到的错误是在第二个static_assert上告诉我使用了非常量表达式。但是如果我在第二个断言中将“Max”更改为“Min”,它确实可以毫无问题地编译。怎么回事?错误:错误:静态断言的

没有 .cc 文件的 .o 文件的 C++ 编译

我有一个程序,我得到了编译后的.o文件,但我没有原始的.cc文件,而且我只有一个半成品的头文件。头文件具有所有方法签名,但缺少私有(private)变量声明。我试图让这个.o文件与项目一起工作,但在.o文件定义的类的构造函数中出现段错误。程序编译。我如何让它工作?该程序是家庭作业,老师不希望我们看到.cc文件。我的老师也知道这个问题。我只是想自己弄清楚(并希望在你们的帮助下:))。我以为我之前和另一位老师做过这个,但没有任何问题。有一个用于编译程序的makefile。 最佳答案 如果您使用的是C++程序,并且头文件包含类定义,则类定

c++ - 编译成功后找不到exe

使用opencv在microsoftvisualstudio2008中成功调试人脸检测代码后,找不到可执行文件。没有错误只有三个警告,但它表明构建已成功。 最佳答案 您可以进入项目设置并检查输出文件夹,在那里寻找您的二进制文件。二进制文件不一定是exe文件,它们也可以是dll或lib。你确定你的程序生成了一个exe?编辑:根据您的评论...它要求一个exe文件?你只是编译,还是按F5,因为F5将进入Debug模式。如果没有生成exe,系统会提示您选择要运行的exe,因为dll无法运行。

从编译器的角度看 C++

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatarethestagesofcompilationofaC++program?我发现了解给定软件语言的编译方式对于理解最佳实践和充分利用该语言至关重要。对于C++,这似乎是双重的。是否有从编译器的角度描述C++的良好入门或文档(对于凡人)?(显然每个编译器都有点不同。)我认为在Stroustrup的书的开头可能有类似的内容。

c++ - 为什么编译器不提示 catch 子句?

此代码生成C2248:'A::B::ExceptionB':无法访问在VS2008中的'classA::B'中声明的私有(private)类。#includeclassA{classExceptionA{};classB{classExceptionB{};public:B();};public:A(int);};A::B::B(){throwExceptionB();}A::A(inti){i%2?throwExceptionA():throwA::B::ExceptionB();//C2248!!}intmain(){try{Aa(3);}catch(A::ExceptionA&)

c++ - "null logger"- 是否会使用 ostream 运算符的空类从优化代码中编译出什么都不做?

如果我有一个在Release模式下为空的日志记录类,并且有一个什么都不做的ostream运算符。它或多或少看起来像这样:structnull_logger{templateinlinenull_logger&operator我创建了一个简单的测试并将生成的程序集粘贴到下面:constchar*foo(){return"hello";}intmain(){inti=0;null_logger()老实说,我并不完全理解汇编。根据@Als的建议,我寻找了call语句,但没有找到。因此可以安全地假设,在Release模式下,将编译出对该ostream运算符的任何调用吗?这是生成的程序集,使用g

c++ - 当(执行时间)>>>(编译时间)时,多个编译单元是否仍然值得?

根据我的理解,创建具有多个编译单元的程序的主要好处是组件的可重用性和合并小更改时编译时间更短。我还认为(可能是错误的)与此相关的惩罚是,在它们自己的编译单元中定义的函数不能声明为“内联”。[我认识到这个关键字实际上并没有强制编译器内联扩展函数,但我的理解是它为编译器提供了更大的优化灵active,因此值得尽可能包括在内。]到目前为止还好吗?我真正的问题是,当程序正在解决一个复杂的建模问题时,成本/yield分析是否仍然支持多个编译单元,并且需要在集群上迭代其主循环数月以生成有用的输出。假设一个多编译单元程序需要几分钟的时间来编译,而同一个程序重新配置为单个编译单元需要几个小时来编译..

c++ - 使用带有 Octave 和 Visual Studio 2010 编译器的 mkoctfile 编译 .mex 或 .oct 文件

我正在尝试使用Octave环境编译基本的c++.mex和.oct文件。.mex文件只是来自matlab的mexcpp.cpp文件,您可以在MATLAB中使用edit([matlabroot'/extern/examples/mex/mexcpp.cpp']);.oct文件是[此处]上找到的简单C++示例。(http://www.gnu.org/software/octave/doc/interpreter/Getting-Started-with-Oct_002dFiles.html)我努力让visualstudio编译器设置所有环境变量,如octavewikiusingvcvarsa

c++ - 我如何 grok boost spirit 编译器错误

我正在尝试使用no_skip指令来解析表单的输入:statePASSstateFAIL我正在使用ascii::blank作为我的skipper。当我包装no_skip[trans_assign_expr]以解析选项卡时,出现编译错误。如何修复此错误,一般而言,我如何理解这些错误以便修复future的错误?boostspirit文档从不涉及使用spirit的这方面:(这是错误Infileincludedfrom/usr/include/boost/spirit/home/qi/nonterminal/grammar.hpp:18:0,from/usr/include/boost/spir

c++ - CMake 选项禁用特定平台特定文件的编译

我正在使用CMake来定义我的项目。我的目标是让特定于平台的文件易于访问,以便在所有平台上进行编辑、搜索、浏览和源代码控制。我目前在cmake描述中分隔了特定于平台的文件。我的CMakeLists.txt文件如下所示:Foo.hpp${platform_directory}/Foo.cpp然后在磁盘上我有这样的东西:Foo.hppwin`-Foo.cpposx`-Foo.cpp生成的项目文件如下所示:Foo.hppFoo.cpp(platform-specificversion)这对于编译器来说是完美的,但这意味着开发人员缺少用于非本地平台特定文件的IDE工具。我正在寻找的是这样的东西